// 接口：用来定义对象的数据类型
interface Person {
	// 必填属性
	name: string;
	sex: number;
	money: number;
	address: string;
	isMarry: boolean;
	// 可选属性
	age?: number;
	// 只读属性(也是必填属性)
	readonly id: number;
	// 任意属性（属性名是任意的）
	// [key: string]: any; // 基本不用
}

const person: Person = {
	id: 1,
	name: "有钱",
	sex: 2,
	age: 80,
	money: Number.MAX_SAFE_INTEGER,
	address: "北京2环内",
	isMarry: false,
};

person.age++;
person.sex++;
// person.id++ // 报错

// interface P {
//   name: string;
//   age: number;
//   child: {
//     name: string;
//     age: number;
//   };
// }

interface Child {
	name: string;
	age: number;
}

interface P {
	name: string;
	age: number;
	child: Child;
}

const p: P = {
	name: "jack",
	age: 55,
	child: {
		name: "rose",
		age: 18,
	},
};

const child: Child = p.child;
